package cn.trigram.mgb.mixed_simple_dynamic;

import java.util.List;
import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.PluginAdapter;
import org.mybatis.generator.api.dom.java.Interface;
import org.mybatis.generator.api.dom.java.Method;
import org.mybatis.generator.api.dom.java.TopLevelClass;
import org.mybatis.generator.api.dom.kotlin.KotlinFile;
import org.mybatis.generator.api.dom.kotlin.KotlinFunction;
import org.mybatis.generator.api.dom.xml.XmlElement;

public class MixedMybatis3SimplePlugin extends PluginAdapter {

  @Override
  public boolean validate(List<String> warnings) {

    return true;
  }

  @Override
  public boolean clientSelectAllMethodGenerated(
      Method method, Interface interfaze, IntrospectedTable introspectedTable
  ) {
    /*mapper接口不生成方法*/
    return false;
  }

  @Override
  public boolean sqlMapSelectAllElementGenerated(
      XmlElement element, IntrospectedTable introspectedTable
  ) {
    /*xml文件不生成任何sql*/
    return false;
  }

  @Override
  public boolean modelBaseRecordClassGenerated(
      TopLevelClass topLevelClass, IntrospectedTable introspectedTable
  ) {
    /*禁止生成实体类，交给dynamic类型生成*/
    return false;
  }

  @Override
  public boolean clientDeleteByPrimaryKeyMethodGenerated(
      Method method, Interface interfaze, IntrospectedTable introspectedTable
  ) {

    return false;
  }

  @Override
  public boolean clientSelectByPrimaryKeyMethodGenerated(
      Method method, Interface interfaze, IntrospectedTable introspectedTable
  ) {

    return false;
  }

  @Override
  public boolean clientUpdateByPrimaryKeySelectiveMethodGenerated(
      Method method, Interface interfaze, IntrospectedTable introspectedTable
  ) {

    return false;
  }

  @Override
  public boolean clientInsertMethodGenerated(
      Method method, Interface interfaze, IntrospectedTable introspectedTable
  ) {

    return false;
  }

  @Override
  public boolean clientUpdateByPrimaryKeyWithBLOBsMethodGenerated(
      Method method, Interface interfaze, IntrospectedTable introspectedTable
  ) {

    return false;
  }

  @Override
  public boolean clientUpdateByPrimaryKeySelectiveMethodGenerated(
      KotlinFunction kotlinFunction, KotlinFile kotlinFile, IntrospectedTable introspectedTable
  ) {

    return false;
  }

  @Override
  public boolean clientUpdateByPrimaryKeyWithoutBLOBsMethodGenerated(
      Method method, Interface interfaze, IntrospectedTable introspectedTable
  ) {

    return false;
  }

  @Override
  public boolean sqlMapDeleteByPrimaryKeyElementGenerated(
      XmlElement element, IntrospectedTable introspectedTable
  ) {

    return false;
  }

  @Override
  public boolean sqlMapInsertElementGenerated(
      XmlElement element, IntrospectedTable introspectedTable
  ) {

    return false;
  }

  @Override
  public boolean sqlMapInsertSelectiveElementGenerated(
      XmlElement element, IntrospectedTable introspectedTable
  ) {

    return false;
  }

  @Override
  public boolean sqlMapSelectByPrimaryKeyElementGenerated(
      XmlElement element, IntrospectedTable introspectedTable
  ) {

    return false;
  }

  @Override
  public boolean sqlMapUpdateByPrimaryKeySelectiveElementGenerated(
      XmlElement element, IntrospectedTable introspectedTable
  ) {

    return false;
  }

  @Override
  public boolean sqlMapUpdateByPrimaryKeyWithBLOBsElementGenerated(
      XmlElement element, IntrospectedTable introspectedTable
  ) {

    return false;
  }

  @Override
  public boolean sqlMapUpdateByPrimaryKeyWithoutBLOBsElementGenerated(
      XmlElement element, IntrospectedTable introspectedTable
  ) {

    return false;
  }

}
